Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO


■NESA-FO BIOS


INT 1Fh - Function C0h
Category:        NESA-FO BIOS
Name:            Get target slot number (1)
Target:          PC-H98
Input:           AH = C0h
                 AL = Product code (00-FFh)
Output:          AX = Slot number table
                   bit 15: Logical slot number 15
                   bit 14: Logical slot number 14
                   ...
                   bit 0: Logical slot number 0
                   * The bit corresponding to the slot number will be set to 1.
Description:     Returns the slot number(s) where the expansion board with the specified product code is installed.
                 If multiple identical expansion boards are installed, multiple bits will be set to 1.
Related
Table:           Correspondence between Physical Slot Number and Slot Name
                 ---------------------+------------------------------
                 Physical Slot Number | Slot Name
                 ---------------------+------------------------------
                 00h                  | Reserved
                 01h                  | Expansion Slot #1
                 02h                  | Expansion Slot #2
                 03h                  | Expansion Slot #3
                 04h                  | Expansion Slot #4
                 05h                  | Reserved
                 06h                  | HDC Dedicated Slot
                 07h                  | CRTC Dedicated Slot
                 08-0Eh               | Reserved
                 0Fh                  | I/O Expansion Unit (Undocumented)
                 ---------------------+------------------------------

Table:           Example of Correspondence between Product Code and Product Name (Undocumented)
                 -------------+--------------------------------+----------
                 Product Code | Product Name                   | Function ID (4)
                 -------------+--------------------------------+----------
                 02h          | PC-H98/70-E02 (ESDI 100MB HDD) | 06h
                 03h          | PC-H98S/8-E02 (SCSI 100MB HDD) | 16h
                 04h          | PC-H98-B02 (2MB Memory Board)  | 06h
                 -------------+--------------------------------+----------


INT 1Fh - Function C1h
Category:        NESA-FO BIOS
Name:            Get Target Slot Number (2)
Target:          PC-H98
Input:           AH=C1h
                 AL = Segment address of the expansion ROM (upper 8 bits)
Output:          AH = Undefined
                 ■ When the corresponding expansion board is found:
                   AL = Logical slot number (00-0Fh)
                 ■ When the corresponding expansion board is not found:
                   AL = FFh
Explanation:     Returns the slot number where the expansion board with the expansion ROM located at the specified address
                 is installed. Hooked by EMM386.EXE.
Related


INT 1Fh - Function C2h
Category:        NESA-FO BIOS
Name:            Get Function ID
Target:          PC-H98
Input:           AH = C2h
                 AL = Logical Slot Number (00-0Fh)
Output:          DX = Function ID (1, 2): Board Manufacturer Code
                 AH = Function ID (3): Product Code
                 AL = Function ID (4) bits 7-4: Compatible Code
                   bits 3,2: Board Classification
                   bits 1,0: NESA-FO Type
                 <<Board Manufacturer Code>>
                 The board manufacturer code is a 2-byte value storing a 3-character alphabet string as follows:
                   bit 15: Always 0
                   bits 14-10: Code for the first character
                   bits 9-5: Code for the second character
                   bits 4-0: Code for the third character
                   The correspondence between the character codes and characters is as follows:
                     00000b = Not used
                     00001b = 'A'
                     00010b = 'B'
                       :
                     11010b = 'Z'
                     11011b = General customer use board manufacturer code
                     11100b = Not used
                       :
                     11111b = Not used
                   For "NEC", the value is 38A3h.
Description:     Returns the function ID of the expansion board installed in the specified slot.
Related


INT 1Fh - Function C3h
Category:        NESA-FO BIOS
Name:            Get NESA-FO Register Settings
Target:          PC-H98
Input:           AH = C3h
                 AL = Slot logical number (00-0Fh)
                 DL = NESA-FO register number (00-0Fh)
Output:          DL = NESA-FO register setting value
                 DH = Undefined
Description:     Reads the setting value of the NESA-FO register of the expansion board installed in the specified slot. Related



INT 1Fh - Function C4h
Category:        NESA-FO BIOS
Name:            Get NESA-FO Allocation Setting Information
Target:          PC-H98
Input:           AH=C4h
                 AL=Logical Slot Number (00-0Fh)
                 DL bits 7-4 = Allocation Item (1-4)
                 DL bits 3-0 = Allocation Information #0-#3 (0-3)
Output:          (1) When Allocation Item (input DL bits 7-4) = 1
                   DL = Interrupt Channel Information
                     bit 7: Flag
                       1 = Interrupt used
                       0 = Interrupt not used
                     bits 6,5: Mode
                       11b = Sharing possible/Level mode
                       10b = Unused
                       01b = Sharing not possible/Level mode
                       00b = Sharing not possible/Edge mode
                     bits 3-0: Interrupt Level (IR value)
                       1101b = INT6
                       1100b = INT5
                       1010b = INT4
                       1001b = INT3
                       0110b = INT2
                       0101b = INT1
                       0011b = INT0
                 (2) When Allocation Item (input DL bits 7-4) = 2
                   DL = DMA Channel Information
                     bit 7: DMA usage status
                       1 = DMA used
                       0 = DMA not used
                     bit 6: Mode
                       1 = Sharing possible
                       0 = Sharing not possible
                     bits 2-0: DMA Channel Number (0-6)
                 (3) When Allocation Item (input DL bits 7-4) = 3
                   AL = I/O Address Information
                     bits 7,6: Area Allocation
                       10b = Even allocation
                       01b = Odd allocation
                       00b = Continuous allocation
                     bits 5-0: Area Size (Number of I/O address ports)
                   DX = bits 15-0 = I/O Start Address
                 (4) When Allocation Item (input DL bits 7-4) = 4 When 7-4) = 4:
                   AL = Upper 8 bits of the memory area start address (in 256-byte units)
                   DX = Lower 16 bits of the memory area start address (in 256-byte units)
                   BX = Memory area size (in 4K-byte units)
Explanation:   o Reads the NESA-FO allocation setting information of the expansion board installed in the specified slot. 
               o The allocation information set in the input DL bits 3-0 is used to distinguish resources when a single board has multiple resources. 
               o Hooked by EMM386.EXE
Related


INT 1Fh - Function C5h
Category:        NESA-FO BIOS
Name:            Get Mouse Interrupt Level
Target:          PC-H98
Input:           AH=C5h
Output:          AL = Interrupt channel information
                 * Same format as the interrupt channel information of INT 1Fh - Function C4h
Explanation:   o Reads the settings related to mouse interrupts.
Related


INT 1Fh - Function C6h
Category:        NESA-FO BIOS
Name:            No function
                 Undocumented
Target:          PC-H98
Input:           AH=C6h
Output:          None
Description:   o None
Related:


INT 1Fh - Function C7h
Category:        NESA-FO BIOS
Name:            Unknown
                 Undocumented
Target:          PC-H98
Input:           AH=C7h
                 AL = Subfunction number
                 DX = Unknown
Output:
Description:   o NESA bus control related. Details unknown. Used by CHGEV.EXE.
Related:


INT 1Fh - Function C8~CFh
Category:
Name:            No function
                 Undocumented
Target:          PC-H98
Input:           AH=C8~CFh
Output:          None
Description:   o None
Related:


■PCMCIA SSDRV.SYS


INT 1Fh - Function CFh Subfunction 00h
Category:        PCMCIA Socket Service
Name:            No function
                 Undocumented
Target:          Machines with PC Card slots + SSDRV.SYS
Input:           AH=CFh
                 AL=00h
Output:          AH=15h (CF=1): Invalid function
Description:   o This function is provided by the PCMCIA socket service (SSDRV.SYS).
               u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related:


INT 1Fh - Function CFh Subfunction 01h
Category:        PCMCIA Socket Service
Name:            Unknown
                 Undocumented
Target:          Machines with PC Card slots + SSDRV.SYS
Input:           AH=CFh
                 AL=01h
                 BH=Adapter number (usually 00h)
                 BL=Socket (usually 01h)
Output:          AH=00h (CF=0): Successful completion
                   CH=?
                   CL=?
                   DX=?
                 AH=01h (CF=1): Invalid adapter specification
                 AH=0Bh (CF=1): Invalid socket specification
                 AH=14h (CF=1): No card inserted
Description:   o Retrieves the values of CH, CL, and DX set by INT 1Fh - Function CFh Subfunction 02h.
               o This function is provided by the PCMCIA socket service (SSDRV.SYS).
               u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related:         INT 1Fh - Function CFh Subfunction 02h


INT 1Fh - Function CFh Subfunction 02h
Category:        PCMCIA Socket Service
Name:            Unknown
                 Undocumented
Target:          Machines with PC Card slots + SSDRV.SYS
Input:           AH=CFh
                 AL=02h
                 BH=Adapter number (usually 00h)
                 BL=Socket (usually 01h)
                 CH=Unknown (Range?)
                   ■When CH bit 6=1
                     CL=?
                     DX=?
                   ■When CH bits 6-4=0x1b
                     CL=00-1Fh
                     DX=0000-01FFh
                   ■When CH bits 6-4=0x0b
                     CL=?
                     DX=0000-0FFFh
Output:          AH=00h (CF=0): Successful completion
                   CH=?
                   CL=?
                   DX=?
                 AH=01h (CF=1): Invalid adapter specified
                 AH=0Bh (CF=1): Invalid socket specified
                 AH=14h (CF=1): No card inserted
                 AH=FEh (CF=1): Invalid value in DX register
                 AH=FFh (CF=1): Invalid value in CL register
Description:   o This function is provided by the PCMCIA socket service (SSDRV.SYS).
               u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related:         INT 1Fh - Function CFh Subfunction 01h


INT 1Fh - Function CFh Subfunction 03h
Category:        PCMCIA Socket Service
Name:            Unknown
                 Undocumented
Target:          Machines with PC Card slots + SSDRV.SYS
Input:           AH=CFh
                 AL=03h
                 BH=Adapter number (usually 00h)
                 CH=Function specification
                   ■CH=00h
                     CL=Address number
                     * Unregisters the address registration for the specified number.
                   ■CH=01h
                     ES:DI=Registration address
                     DX=?
                     * The address number to register is usually #7. However, it is #0 only when DX=4143h.
Output:          AH=00h (CF=0): Successful completion
                 AH=01h (CF=1): Invalid adapter specification
                 AH=15h (CF=1): Invalid function
                 AH=16h (CF=1): Invalid mode
                 AH=FCh (CF=1): Invalid value in CL register
Explanation:   o This function is provided by the PCMCIA socket service (SSDRV.SYS).
               u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related:


INT 1Fh - Function CFh Subfunction 04h
Category:        PCMCIA Socket Service
Name:            No function
                 Undocumented
Target:          Machines with PC Card slots + SSDRV.SYS
Input:           AH=CFh
                 AL=04h
Output:          AH=15h (CF=1): Invalid function
Explanation:   o This function is provided by the PCMCIA socket service (SSDRV.SYS).
               u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags. Related



INT 1Fh - Function CFh Subfunction 05h
Category:        PCMCIA Socket Service
Name:            Unknown
                 Undocumented
Target:          Machines with PC Card slots + SSDRV.SYS
Input:           AH=CFh
                 AL=05h
                 BH=Adapter number (usually 00h)
                 BL=Transfer content specification 1 (01-08h)
                 CL=Transfer content specification 2 (00-01h)
                   00h: Transfer 408 bytes
                   01h: Transfer 38 bytes
                 ES:DI=Transfer address
                   ■Data format when CL=01h
                     ------------+------------------------------------------------------------
                     Offset      | Content
                     ------------+------------------------------------------------------------
                     +00h (WORD) | Expansion slot usage flag
                                 |   0001h: Use
                                 |   FFFFh: Do not use
                     +02h (BYTE) | Interrupt registration used by the expansion slot
                                 | bits 6-0: INT6-INT0 usage flags
                                 |    1 = Use
                                 |    0 = Do not use
                                 |    * Set the bit corresponding to the interrupt to be used to 1. Up to two can be specified.
                     +03h (BYTE) | Always 00h (unused)
                     +04h (WORD) | Number of I/O space registrations used by the expansion slot (0000-0004h)
                                 |   0000h if I/O space is not used
                     +06h (WORD) | Lower address limit of expansion slot area #0
                     +08h (WORD) | Upper address limit of expansion slot area #0
                     +0Ah (WORD) | Lower address limit of expansion slot area #1
                     +0Ch (WORD) | Upper address limit of expansion slot area #1
                     +0Eh (WORD) | Lower address limit of expansion slot area #2
                     +10h (WORD) | Upper address limit of expansion slot area #2
                     +12h (WORD) | Lower address limit of expansion slot area #3
                     +14h (WORD) | Upper address limit of expansion slot area #3
                     +16h        | Unused
                       :         |
                     +25h        |
                     ------------+------------------------------------------------------------
Output           AH=00h (CF=0): Normal termination
                 AH=01h (CF=1): Invalid adapter specification
                 AH=FDh (CF=1): Invalid value in BL register
Explanation    o This function is provided by the PCMCIA socket service (SSDRV.SYS). 
               u The data format when CL=01h is the same as CARDSET.DAT. CARDSET.DAT contains data for expansion slots #1 to #3 in this format. 
               u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related          INT 1Fh - Function CFh Subfunction 06h


INT 1Fh - Function CFh Subfunction 06h
Category:        PCMCIA Socket Service
Name:            Unknown
                 Undocumented
Target:          Machines with PC Card slots + SSDRV.SYS
Input:           AH=CFh
                 AL=06h
                 BH=Adapter number (usually 00h)
                 BL=Transfer content specification 1 (01-08h)
                 CL=Transfer content specification 2 (00-01h)
                   00h: 408 bytes transferred
                   01h: 38 bytes transferred
                 ES:DI=Transfer address
                   * For CL=01h, see INT 1Fh - Function CFh Subfunction 05h for data format.
Output:          AH=00h (CF=0): Successful completion
                 AH=01h (CF=1): Invalid adapter specified
                 AH=FDh (CF=1): Invalid value in BL register
Description:   o This function is provided by the PCMCIA Socket Service (SSDRV.SYS).
               u The data format when CL=01h is the same as CARDSET.DAT. CARDSET.DAT stores data for expansion slots #1 to #3 in this format.
               u In NEC's PCMCIA Socket Service 2.00 Driver Rev 1.00, executing this function destroys the ZR, PE, and OV flags.
Related:         INT 1Fh - Function CFh Subfunction 05h


■H98 DMA BIOS


INT 1Fh - Function D0h
Category:        DMA BIOS
Name:            DMAC Reset
                 Undocumented
Target:          PC-H98
Input:           AH=D0h
Output:          AH=00h, CF=0: Successful completion
Description:     Performs a master clear on the DMAC. The DMAC is reset.
Related:         I/O 001Bh


INT 1Fh - Function D1h
Category:        DMA BIOS
Name:            No function
                 Undocumented
Target:          PC-H98
Input:           AH=D1h
Output:          AH=00h, CF=0
Description:     None
Related:


INT 1Fh - Function D2h
Category:        DMA BIOS
Name:            Channel Allocate
Target:          PC-H98
Input:           AH=D2h
                 AL=DMA channel number (0-6)
Output:          AH=00h, CF=0: Successful completion
                    40h, CF=1: The specified DMA channel is in use
Description:     Allocates the right to use a DMAC channel. Related: 0000:0591h


INT 1Fh - Function D3h
Category:        DMA BIOS
Name:            DMA Channel Initialization
Target:          PC-H98
Input:           AH=D3h
                 AL = DMA channel number (0-6)
                 BH = Settings to be configured in the BL register
                   00h: Bus size and transfer mode settings
                   01h: DMA boundary settings
                   02h: Unknown (Undocumented)
                   (1) When BH=00h:
                     BL  bits 7-4: Bus size
                       1111b = 8-bit
                       1010b = 16-bit
                       0101b = 32-bit
                       * Other values are prohibited.
                     BL  bits 3,2: Type
                       11b = Reserved
                       10b = Type B
                       01b = Type A
                       00b = Compatible cycle
                         bits 1,0: Set to 00b
                   (2) When BH=01h:
                     BL  bits 7-4: Set to 0000b
                     BL  bits 3,2: DMA boundary
                       11 = 16M bytes
                       10 = Reserved
                       01 = 1M byte
                       00 = 64K bytes
                         bits 1,0: Set to 00b
                   (2) When BH=02h (Undocumented):
                     bits 7-2: Unknown
                     bits 1,0: Set to 00b
Output:          AH=00h, CF=0: Successful completion
                    20h, CF=1: Invalid parameter specified
                    40h, CF=1: The specified DMA channel is in use
Description:   o Sets the DMA bus width and DMA address boundary for each DMA channel. Related


INT 1Fh - Function D4h
Category:        DMA BIOS
Name:            No function
                 Undocumented
Target:          PC-H98
Input:           AH=D4h
Output:          AH=00h, CF=0
Description:   o None
Related


INT 1Fh - Function D5h
Category:        DMA BIOS
Name:            DMA Parameter Set
Target:          PC-H98
Input:           AH=D5h
                 AL  bit 7: TARGET ADDRESS UP/DOWN
                       1=TARGET DOWN
                       0=TARGET UP
                     bit 6: AUTO INITIALIZE MODE
                       1=AUTO INITIALIZE
                       0=NO OPERATION
                     bit 5,4: DMA MODE
                       11b=Setting prohibited
                       10b=Read (Memory to I/O)
                       01b=Write (I/O to Memory)
                       00b=Verify (I/O Read)
                     bit 3: Set to 0
                     bit 2-0: DMA channel number (0-6)
                 ES:BX = Start address of the parameter table
                   <Parameter Table Format>
                   ----------------+-----------------------------------
                   Address         | Content
                   ----------------+-----------------------------------
                   ES:BX+00h(WORD) | DMA COUNT(L)
                   ES:BX+02h(WORD) | DMA COUNT(H) (Upper 1 byte is set to 00h)
                   ES:BX+04h(WORD) | DMA ADDRESS(L)
                   ES:BX+06h(WORD) | DMA ADDRESS(H)
                   ----------------+-----------------------------------
Output:          AH=00h, CF=0: Normal termination
                    20h, CF=1: Invalid parameter specified
Description:   o Sets various parameters for the specified channel in the DMAC and unmasks the single mask register.
Related:         0000:0591h


INT 1Fh - Function D6h
Category:        DMA BIOS
Name:            DMA Parameter Readback
Target:          PC-H98
Input:           AH=D6h
                 AL=DMA channel number (0-6)
                 ES:BX=Start address of the parameter table
                 * See INT 1Fh - Function D5h for format
Output:          AH=00h, CF=0: Successful completion
                    40h, CF=1: The specified DMA channel is not in use
Description:     Retrieves the DMA address and transfer byte count for the specified channel.
Related:         0000:0591h


INT 1Fh - Function D7h
Category:        DMA BIOS
Name:            Channel Release
Target:          PC-H98
Input:           AH=D7h
                 AL=DMA channel number (0-6)
Output:          AH=00h, CF=0: Successful completion
                    40h, CF=1: Channel check error
Description:     Releases the usage rights of the DMA channel.
Related:         0000:0591h


■H98 Extended ROM BIOS


INT 1Fh - Function D8h
Category:        Extended ROM BIOS
Name:            Unknown
                 Undocumented
Target:          PC-H98
Input:           AH=D8h
                 CX=Interrupt number to use
                 ES:BX=Address of the interrupt control block
Output:          CF=1: The specified interrupt control block is already in use
                 CF=0: Successful completion
Description:     Details unknown
Related:


INT 1Fh - Function D9h
Category:        Extended ROM BIOS
Name:            Extended ROM Area Interrupt Control Block Update
                 (documented)
Target:          PC-H98
Input:           AH=D9h
                 AL=Upper 8 bits of the extended ROM segment address
                 CX=Interrupt number to use
                 ES:BX=Address of the interrupt control block to chain
Output:          CF=1: The specified interrupt control block is already in use
                 CF=0: Successful completion
Description:     Updates the offset +04-07h (interrupt routine chain) of the interrupt control block in the extended ROM. Related


INT 1Fh - Function DAh
Category:        Extended ROM BIOS
Name:            No function
                 Undocumented
Target:          PC-H98
Input:           AH=DAh
Output:          CF=0
Description:     None
Related


INT 1Fh - Function DBh
Category:        Extended ROM BIOS
Name:            Extended ROM Write Protection/Enable Setting
                 Undocumented
Target:          PC-H98
Input:           AH=DBh
                 AL = Upper 8 bits of the extended ROM segment address
                 CX = Number of bytes
                 DL = Setting value
                   00h: Write protection enabled
                   01h: Write protection disabled
Output:          AH=00h, CF=0: Successful completion
                 AH=40h, CF=1: Invalid range for AL
Description:     Sets the write protection/enable status of the extended ROM area.
Related


INT 1Fh - Functions DC-DEh
Category:        Extended ROM BIOS
Name:            No function
                 Undocumented
Target:          PC-H98
Input:           AH = DC-DEh
Output:          CF = 0
Description:   o None
Related:


■ H98 Power BIOS


INT 1Fh - Function DFh
Category:        Power BIOS
Name:            Power OFF Disable/Enable Setting
                 Undocumented
Target:          PC-H98
Input:           AH = DFh
                 BH = 00h: Power OFF disabled
                   Other than 00h: Power OFF enabled
Output:          None
Description:   o If power OFF is disabled using this function, the power will not turn off even if the power switch is pressed. 
               o Even in the power OFF disabled state, INT 1Fh - Function 98h will still turn off the power.
Related:         INT 1Fh - Function 98h
                 0000:0596h bit 1
                 I/O 0431h